USBDeview

USBDeview v1.03
Copyright (c) 2006 - 2007 Nir Sofer
Web Site: http://www.nirsoft.net

Description

USBDeview is a small utility that lists all USB devices that currently connected to your computer, as well as all USB devices that you previously used.
For each USB device, exteneded information is displayed: Device name/description, device type, serial number (for mass storage devices), the date/time that device was added, VendorID, ProductID, and more...
USBDeview also allows you to uninstall USB devices that you previously used, and disconnect USB devices that are currently connected to your computer.
You can also use USBDeview on a remote computer, as long as you login to that computer with admin user.

License

This utility is released as freeware. You are allowed to freely distribute this utility via floppy disk, CD-ROM, Internet, or in any other way, as long as you don't charge anything for this. If you distribute this utility, you must include all files in the distribution package, without any modification !

Disclaimer

The software is provided "AS IS" without any warranty, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The author will not be liable for any special, incidental, consequential or indirect damages due to loss of data or any other reason.

System Requirement

This utility works on Windows 2000/XP/2003. Windows 98/ME is not supported.

Versions History

  • Version 1.03 - New command-line option: /stop_by_class
  • Version 1.02 - New option: Display devices without drivers.
  • Version 1.01 - Fixed bug: In some computers, the USB devices list was loaded from the wrong hardware configuration.
  • Version 1.00 - First release.

Using USBDeview

USBDeview doesn't require any installation process or additional DLL files. Just copy the executable file (USBDeview.exe) to any folder you like, and run it.
The main window of USBDeview displays all USB devices installed on your system. You can select one or more items, and then disconnect (unplug) them , uninstall them, or just save the information into text/xml/html file.

USBDeview Columns Description

  • Device Name: Specifies the device name. For some device, this column may display meaningless name, like "USB Device". If the device name is meaningless, try to look at the Description column.
  • Device Description: The description of the device.
  • Device Type: The device type, according to USB class code. For more information about USB classes: USB Class Codes.
  • Connected: Specifies whether the device is currently connected to your computer. If the device is connected, you can use the 'Disconnect Selected Devices' option (F9) to disconnect the device.
  • Safe To Unplug: Specifies whether it's safe to unplug the device from the USB plug without disconnecting it first. If the value of this column is true, and you want to unplug this device, you must first disconnect this device by using the 'Disconnect Selected Devices' option (F9) of USBDeview utility, or by using the 'Unplug or Eject Hardware' utility of Windows operating system.
  • Drive Letter: Specifies the drive letter of the USB device. This column is only relevant to USB flash memory devices and to USB CD/DVD drives. Be aware that USBDeview cannot detect drive letters of USB hard-disks.
  • Serial Number: Specifies the serial number of the device. This column is only relevant to mass storage devices (flash memory devices, CD/DVD drives, and USB hard-disks).
  • Created Date: Specifies the date/time that the device was installed. In most cases, this date/time value represents the time that you first plugged the device to the USB port. However, be aware that in some circumstances this value may be wrong.
  • Last Plug/Unplug Date: Specifies the last time that you plugged/unplugged the device. This date value is lost when you restart the computer.
  • VendorID/ProductID: Specifies the VendorID and ProductID of the device. For unofficial list of VendorID/ProductID, click here.
  • USB Class/Subclass/Protocol: Specifies the Class/Subclass/Protocol of the device according to USB specifications. For more information about USB classes: USB Class Codes.
  • Hub/Port: Specifies the hub number and port number that the device was plugged into. This value is empty for mass storage devices.

Known Limitations/Issues

  • For all devices except 'Mass Storage' Devices: If you plug a device to one USB port, and then you plug the same device to another USB port, a new record of the same device will be created for each USB port that you plug. So if you see multiple lines for exactly the same device, it means that you plugged it to different USB ports. The USB ports that you plugged are specified in 'Hub/Port' column.
    However, for 'Mass Storage' device, only one record is created for each device, even if you plug it to different USB port.
  • When a USB device is added/removed on your local computer, UDBDeview utility automatically updates the list of USB devices.
    But... If you UDBDeview is connected to a remote computer, the list won't refresh automatically when a device is added or removed. You must refresh it manually, by pressing F5 key.

Connecting To Remote Computer

The following command-line options allows you to connect to remote computers. You must login to the remote computer with admin user in order to use these options.
  • /remote <\\Computer Name>
    Allows you to connect a single remote computer.
    For Example:
    USBDeview.exe /remote \\MyComp
  • /remotefile <Computers List File>
    Allows you to connect multiple computers, and view all their USB activity in one window. The computers list file should be a simple Ascii text file with computer names separated by colon, semicolon, space, tab characters or CRLF.
    For Example:
    USBDeview.exe /remotefile "c:\temp\comp.txt"

Stop/Disconnect Command-Line Options

  • /stop {/showmsg} {\\RemoteComputer} <Device Name>
    Stop/disconnect a USB device by specifying its name or description.
    You don't have to specify the whole name or description. You can also specify only a part of the name or description string, and USBDeview will identify it. For example, If the device name is 'Kingston DataTraveler 2.0', you can simply put 'kingston' or 'DataTraveler' in the device name parameter, and USBDeview will disconnect the right device.
    If you want that a message/balloon will be displayed after the device is disconnected, add the '/showmsg' parameter. (Windows 2000 displays a message-box, Windows XP displays a balloon)
    If you want to disconnect a device in a remote computer, specify the remote computer name, with \\ prefix. You must login to the remote computer with admin rights in order to do that.
    Examples:
    USBDeview.exe /stop /showmsg "DVD RW"
    USBDeview.exe /stop "DataTraveler"
    USBDeview.exe /stop \\comp01 "SanDisk Cruzer"

  • /stop_by_serial {/showmsg} {\\RemoteComputer} <Device Name>
    Similar to /stop command, but instead of specifying a device name, you should specify the serial number of the device. Works only with mass storage devices.
    Examples:
    USBDeview.exe /stop_by_serial ea051261
    USBDeview.exe /stop_by_serial /showmsg 876534513

  • /stop_by_drive {/showmsg} {\\RemoteComputer} <Device Name>
    Stop/disconnect a USB device by specifying its drive letter. Works only with USB flash drives and CD/DVD devices.
    Examples:
    USBDeview.exe /stop_by_drive g:
    USBDeview.exe /stop_by_drive /showmsg f:
    USBDeview.exe /stop_by_drive /showmsg \\comp02 t:

  • /stop_by_class {/showmsg} {\\RemoteComputer} <USB Class;USB SubClass;USB Protocol>
    Stop/disconnect a USB device by specifying the class/subclass/protocol combination.
    For example, if you want to stop all 'Mass Storage' devices, you should specify the following class/subclass/protocol combination: 08;06;50
    Examples:
    USBDeview.exe /stop_by_class /showmsg 08;06;50
    USBDeview.exe /stop_by_class 03;01;02

  • /stop_all {/showmsg} {\\RemoteComputer}
    Stop/disconnect all USB devices currently connected to your computer.

Save Command-Line Options

/stext <Filename> | Save the list of all USB devices into a regular text file.
/stab <Filename> | Save the list of all USB devices into a tab-delimited text file.
/stabular <Filename> | Save the list of all USB devices into a tabular text file.
/shtml <Filename> | Save the list of all USB devices into HTML file (Horizontal).
/sverhtml <Filename> | Save the list of all USB devices into HTML file (Vertical).
/sxml <Filename> | Save the list of all USB devices to XML file.

Translating USBDeview to other languages

In order to translate USBDeview to other language, follow the instructions below:
  1. Run USBDeview with /savelangfile parameter:
    USBDeview.exe /savelangfile
    A file named USBDeview_lng.ini will be created in the folder of USBDeview utility.
  2. Open the created language file in Notepad or in any other text editor.
  3. Translate all string entries to the desired language. Optionally, you can also add your name and/or a link to your Web site. (TranslatorName and TranslatorURL values) If you add this information, it'll be used in the 'About' window.
  4. After you finish the translation, Run USBDeview, and all translated strings will be loaded from the language file.
    If you want to run USBDeview without the translation, simply rename the language file, or move it to another folder.

Feedback

If you have any problem, suggestion, comment, or you found a bug in my utility, you can send a message to nirsofer@yahoo.com